<?php
/*
 * Copyright (c) 2017-2025 Tencent. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *    http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
namespace TencentCloud\Ocr\V20181119\Models;
use TencentCloud\Common\AbstractModel;

/**
 * RecognizeThaiIDCardOCR response structure.
 *
 * @method string getID() Obtain ID card number
 * @method void setID(string $ID) Set ID card number
 * @method string getThaiName() Obtain Name in Thai
 * @method void setThaiName(string $ThaiName) Set Name in Thai
 * @method string getEnFirstName() Obtain Name in English
 * @method void setEnFirstName(string $EnFirstName) Set Name in English
 * @method string getEnLastName() Obtain Name in English
 * @method void setEnLastName(string $EnLastName) Set Name in English
 * @method string getIssueDate() Obtain Date of issue in Thai
 * @method void setIssueDate(string $IssueDate) Set Date of issue in Thai
 * @method string getExpirationDate() Obtain Expiration date in Thai
 * @method void setExpirationDate(string $ExpirationDate) Set Expiration date in Thai
 * @method string getEnIssueDate() Obtain Date of issue in English
 * @method void setEnIssueDate(string $EnIssueDate) Set Date of issue in English
 * @method string getEnExpirationDate() Obtain Expiration date in English
 * @method void setEnExpirationDate(string $EnExpirationDate) Set Expiration date in English
 * @method string getBirthday() Obtain Date of birth in Thai
 * @method void setBirthday(string $Birthday) Set Date of birth in Thai
 * @method string getEnBirthday() Obtain Date of birth in English
 * @method void setEnBirthday(string $EnBirthday) Set Date of birth in English
 * @method string getReligion() Obtain Religion
 * @method void setReligion(string $Religion) Set Religion
 * @method string getSerialNumber() Obtain Serial number
 * @method void setSerialNumber(string $SerialNumber) Set Serial number
 * @method string getAddress() Obtain Address
 * @method void setAddress(string $Address) Set Address
 * @method string getLaserID() Obtain LaserID in the back of the card.
 * @method void setLaserID(string $LaserID) Set LaserID in the back of the card.
 * @method string getPortraitImage() Obtain Identity photo
 * @method void setPortraitImage(string $PortraitImage) Set Identity photo
 * @method array getWarnCardInfos() Obtain Card Warning Information

-9101 Alarm for covered certificate,
-9102 Alarm for photocopied certificate,
-9103 Alarm for photographed certificate,
-9104 Alarm for PS certificate,
-9107 Alarm for reflective certificate,
-9108 Alarm for blurry image,
-9109 This capability is not enabled.
 * @method void setWarnCardInfos(array $WarnCardInfos) Set Card Warning Information

-9101 Alarm for covered certificate,
-9102 Alarm for photocopied certificate,
-9103 Alarm for photographed certificate,
-9104 Alarm for PS certificate,
-9107 Alarm for reflective certificate,
-9108 Alarm for blurry image,
-9109 This capability is not enabled.
 * @method string getAdvancedInfo() Obtain This field is deprecated and will always return "1". Usage is not recommended.
 * @method void setAdvancedInfo(string $AdvancedInfo) Set This field is deprecated and will always return "1". Usage is not recommended.
 * @method integer getCardCount() Obtain The number of cards detected in the input image provided via ImageBase64 parameter.(Currently supported only in ap-bangkok region)
 * @method void setCardCount(integer $CardCount) Set The number of cards detected in the input image provided via ImageBase64 parameter.(Currently supported only in ap-bangkok region)
 * @method string getRequestId() Obtain The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
 * @method void setRequestId(string $RequestId) Set The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
 */
class RecognizeThaiIDCardOCRResponse extends AbstractModel
{
    /**
     * @var string ID card number
     */
    public $ID;

    /**
     * @var string Name in Thai
     */
    public $ThaiName;

    /**
     * @var string Name in English
     */
    public $EnFirstName;

    /**
     * @var string Name in English
     */
    public $EnLastName;

    /**
     * @var string Date of issue in Thai
     */
    public $IssueDate;

    /**
     * @var string Expiration date in Thai
     */
    public $ExpirationDate;

    /**
     * @var string Date of issue in English
     */
    public $EnIssueDate;

    /**
     * @var string Expiration date in English
     */
    public $EnExpirationDate;

    /**
     * @var string Date of birth in Thai
     */
    public $Birthday;

    /**
     * @var string Date of birth in English
     */
    public $EnBirthday;

    /**
     * @var string Religion
     */
    public $Religion;

    /**
     * @var string Serial number
     */
    public $SerialNumber;

    /**
     * @var string Address
     */
    public $Address;

    /**
     * @var string LaserID in the back of the card.
     */
    public $LaserID;

    /**
     * @var string Identity photo
     */
    public $PortraitImage;

    /**
     * @var array Card Warning Information

-9101 Alarm for covered certificate,
-9102 Alarm for photocopied certificate,
-9103 Alarm for photographed certificate,
-9104 Alarm for PS certificate,
-9107 Alarm for reflective certificate,
-9108 Alarm for blurry image,
-9109 This capability is not enabled.
     */
    public $WarnCardInfos;

    /**
     * @var string This field is deprecated and will always return "1". Usage is not recommended.
     * @deprecated
     */
    public $AdvancedInfo;

    /**
     * @var integer The number of cards detected in the input image provided via ImageBase64 parameter.(Currently supported only in ap-bangkok region)
     */
    public $CardCount;

    /**
     * @var string The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
     */
    public $RequestId;

    /**
     * @param string $ID ID card number
     * @param string $ThaiName Name in Thai
     * @param string $EnFirstName Name in English
     * @param string $EnLastName Name in English
     * @param string $IssueDate Date of issue in Thai
     * @param string $ExpirationDate Expiration date in Thai
     * @param string $EnIssueDate Date of issue in English
     * @param string $EnExpirationDate Expiration date in English
     * @param string $Birthday Date of birth in Thai
     * @param string $EnBirthday Date of birth in English
     * @param string $Religion Religion
     * @param string $SerialNumber Serial number
     * @param string $Address Address
     * @param string $LaserID LaserID in the back of the card.
     * @param string $PortraitImage Identity photo
     * @param array $WarnCardInfos Card Warning Information

-9101 Alarm for covered certificate,
-9102 Alarm for photocopied certificate,
-9103 Alarm for photographed certificate,
-9104 Alarm for PS certificate,
-9107 Alarm for reflective certificate,
-9108 Alarm for blurry image,
-9109 This capability is not enabled.
     * @param string $AdvancedInfo This field is deprecated and will always return "1". Usage is not recommended.
     * @param integer $CardCount The number of cards detected in the input image provided via ImageBase64 parameter.(Currently supported only in ap-bangkok region)
     * @param string $RequestId The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
     */
    function __construct()
    {

    }

    /**
     * For internal only. DO NOT USE IT.
     */
    public function deserialize($param)
    {
        if ($param === null) {
            return;
        }
        if (array_key_exists("ID",$param) and $param["ID"] !== null) {
            $this->ID = $param["ID"];
        }

        if (array_key_exists("ThaiName",$param) and $param["ThaiName"] !== null) {
            $this->ThaiName = $param["ThaiName"];
        }

        if (array_key_exists("EnFirstName",$param) and $param["EnFirstName"] !== null) {
            $this->EnFirstName = $param["EnFirstName"];
        }

        if (array_key_exists("EnLastName",$param) and $param["EnLastName"] !== null) {
            $this->EnLastName = $param["EnLastName"];
        }

        if (array_key_exists("IssueDate",$param) and $param["IssueDate"] !== null) {
            $this->IssueDate = $param["IssueDate"];
        }

        if (array_key_exists("ExpirationDate",$param) and $param["ExpirationDate"] !== null) {
            $this->ExpirationDate = $param["ExpirationDate"];
        }

        if (array_key_exists("EnIssueDate",$param) and $param["EnIssueDate"] !== null) {
            $this->EnIssueDate = $param["EnIssueDate"];
        }

        if (array_key_exists("EnExpirationDate",$param) and $param["EnExpirationDate"] !== null) {
            $this->EnExpirationDate = $param["EnExpirationDate"];
        }

        if (array_key_exists("Birthday",$param) and $param["Birthday"] !== null) {
            $this->Birthday = $param["Birthday"];
        }

        if (array_key_exists("EnBirthday",$param) and $param["EnBirthday"] !== null) {
            $this->EnBirthday = $param["EnBirthday"];
        }

        if (array_key_exists("Religion",$param) and $param["Religion"] !== null) {
            $this->Religion = $param["Religion"];
        }

        if (array_key_exists("SerialNumber",$param) and $param["SerialNumber"] !== null) {
            $this->SerialNumber = $param["SerialNumber"];
        }

        if (array_key_exists("Address",$param) and $param["Address"] !== null) {
            $this->Address = $param["Address"];
        }

        if (array_key_exists("LaserID",$param) and $param["LaserID"] !== null) {
            $this->LaserID = $param["LaserID"];
        }

        if (array_key_exists("PortraitImage",$param) and $param["PortraitImage"] !== null) {
            $this->PortraitImage = $param["PortraitImage"];
        }

        if (array_key_exists("WarnCardInfos",$param) and $param["WarnCardInfos"] !== null) {
            $this->WarnCardInfos = $param["WarnCardInfos"];
        }

        if (array_key_exists("AdvancedInfo",$param) and $param["AdvancedInfo"] !== null) {
            $this->AdvancedInfo = $param["AdvancedInfo"];
        }

        if (array_key_exists("CardCount",$param) and $param["CardCount"] !== null) {
            $this->CardCount = $param["CardCount"];
        }

        if (array_key_exists("RequestId",$param) and $param["RequestId"] !== null) {
            $this->RequestId = $param["RequestId"];
        }
    }
}
